package com.xiaoshuidi.cloud.module.finance.service.invoice;

import com.xiaoshuidi.cloud.framework.common.pojo.PageResult;
import com.xiaoshuidi.cloud.framework.security.core.LoginUser;
import com.xiaoshuidi.cloud.module.finance.controller.admin.invoice.vo.*;

import java.util.List;

public interface BaseInvoiceService {

    String issueInvoices(LoginUser user, InvoiceIssueReqVO reqVO);
    String issueInvoices1(LoginUser user, InvoiceIssueReqVO reqVO);
    String appIssueInvoices(LoginUser user, AppInvoiceIssueReqVO reqVO);

    InvoiceInfoRespVO getInvoiceDetailByOrder( Long invoiceId);
    InvoiceInfoRespVO getInvoiceDetailByInvoice( Long invoiceId);

    PageResult<IssueInvoicePageRespVO> getIssueInvoiceList(IssueInvoicePageReqVO vo);

    void invalidateInvoice(LoginUser user, Long invoiceId);

    /**
     * 发票红冲
     * @param user
     * @param invoiceId
     * @return
     */
    String invoiceRushRed(LoginUser user, Long invoiceId);

    OrderDetailInfoRespVO getDetailByOrderIds(List<Long> orderIdList);

    List<Long> invoiceRedForOrderIds(List<Long> orderIds);

}
